package top.xcxdl.rural.service;

import com.github.pagehelper.PageInfo;
import top.xcxdl.rural.entity.RuralUser;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author Ding
 * @since 2022-05-05
 */
public interface IRuralUserService extends IService<RuralUser> {

    /**
     * 后台获取用户列表
     *
     * @param pageNo   页码
     * @param pageSize 每页数量
     * @param key      搜索关键字
     * @return 分页列表
     */
    PageInfo<RuralUser> getList(Integer pageNo, Integer pageSize, String key);

    /**
     * 后台修改用户状态
     *
     * @param user 用户实体
     * @return 更新结果布尔值
     */
    boolean changeStatus(RuralUser user);

    /**
     * 后台删除用户
     * @param ids 用户id集合
     * @return 影响行数
     */
    int doDelete(List<Integer> ids);

    /**
     * 获取用户信息byOpenId
     * @param openid 微信openid
     * @return 用户实体
     */
    RuralUser getUserByOpenId(String openid);

    /**
     * 创建用户
     * @param user 用户实体
     * @return 影响行数
     */
    int toInsertUser(RuralUser user);

    /**
     * 更新用户
     * @param user 用户实体
     */
    void toUpdateUser(RuralUser user);

    /**
     * 根据用户id获取用户信息
     * @param loginUserId 登录用户id
     * @return 用户实体集合
     */
    List<RuralUser> getFriendListById(Integer loginUserId);

    /**
     * 根据用户id获取用户信息
     * @param id 用户id
     * @return 用户实体
     */
    RuralUser getUserById(Integer id);
}
